package com.example.demo.service.comm;

import com.example.demo.entity.CollectionName;
import com.example.demo.entity.base.EnumState;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;

import javax.annotation.Resource;
import java.util.List;

/**
 * @description:
 * @author: cj
 * @create: 10-02-28 10:56:13
 */
@Service
public class CommService {
    @Resource
    MongoTemplate mongoTemplate;
    /*
   用户-角色-权限
     */

    /**
     * 根据角色id获取用户的所有权限
     *
     * @param roleId 角色id
     * @return 权限name的集合
     */
    public List<String> getPowerNameByUserId(String roleId) {
//        MatchOperation match = Aggregation.match( Criteria.where( "_id" ).is( roleId ) );
//        Aggregation.newAggregation( match );
//        mongoTemplate.aggregate()
        return null;
    }

    /*
 首页 - 数据
   */

    /**
     * 判断是否是作者
     *
     * @param authors id集合
     * @return 都是就返回 true 反之 返回 false
     */
    public Boolean isAuthor(List<String> authors) {
        if (CollectionUtils.isEmpty( authors )) {
            return false;
        }
        Criteria criteria = Criteria.where( "_id" ).in( authors ).and( "type" ).is( EnumState.STATE_USER_AUTHOR.getState() );
        long count = mongoTemplate.count( Query.query( criteria ), CollectionName.USER );
        return count == authors.size();
    }
}
